8.05 ORM查询数据
1、Sql写入:
mysql> insert into user1(uerName,passWord,age,birthDay) values('韦广和死佬','12345',18,'2020-12-12');
Query OK, 1 row affected (0.01 sec)
mysql> insert into user1(uerName,passWord,age,birthDay) values('韦林死佬','12345',18,'2020-12-12');
Query OK, 1 row affected (0.01 sec)
mysql> insert into user1(uerName,passWord,age,birthDay) values('张三','12345',18,'2020-12-12');
Query OK, 1 row affected (0.01 sec)
mysql> insert into user1(uerName,passWord,age,birthDay) values('李四','12345',18,'2020-12-12');
Query OK, 1 row affected (0.01 sec)
2、在model.py中添加def __str__
from django.db import models
class User1(models.Model):
id=models.AutoField(primary_key=True)
uerName=models.CharField(max_length=100)
passWord=models.CharField(max_length=100)
age=models.IntegerField()
birthDay=models.DateTimeField()
def __str__(self):
return self.uerName
class Meta:
db_table="user1"
3、在views.py中写入
from django.shortcuts import render,HttpResponse
from django.http import JsonResponse
from .models import User1
def text(request):
res=User1.objects.all()
res=list([i.uerName for i in res]) #上面的res是一个对生成器,需要转经列表
return JsonResponse(res, safe=False, json_dumps_params={'ensure_ascii': False})
4、运行后结果:
查询1:
from django.shortcuts import render,HttpResponse
from .models import User1
def text(request):
res=User1.objects.filter(uerName='韦林死佬')
print(res)
return HttpResponse("OK")
终端返回结果:
<QuerySet [<User1: 韦林死佬>]>
[09/Oct/2025 22:22:50] "GET /app082/text HTTP/1.1" 200 2

查询1:
from django.shortcuts import render,HttpResponse
from .models import User1
def text(request):
res=User1.objects.filter(uerName='韦林死佬')
print(res)
return HttpResponse("OK")
终端返回结果:
<QuerySet [<User1: 韦林死佬>]>
[09/Oct/2025 22:22:50] "GET /app082/text HTTP/1.1" 200 2
查询2:查询满足条件值
from django.shortcuts import render,HttpResponse
from .models import User1
def text(request):
res=User1.objects.filter(uerName='韦林死佬')
print(res)
res1 = User1.objects.filter(age=18)
for i in res1:
print(i.id,i.uerName,i.age)
return HttpResponse("OK")
终端返回结果:
<QuerySet [<User1: 韦林死佬>]>
1 韦广和死佬 18
2 韦林死佬 18
3 张三 18
4 李四 18
[18/Oct/2025 15:37:53] "GET /app082/text HTTP/1.1" 200 2
查询3:查询满足第一个条件返回
Model.py增加:
from django.db import models
class User1(models.Model):
id=models.AutoField(primary_key=True)
uerName=models.CharField(max_length=100)
passWord=models.CharField(max_length=100)
age=models.IntegerField()
birthDay=models.DateTimeField()
def __str__(self):
return str(self.id)+self.uerName+str(self.age)
class Meta:
db_table="user1"
views.py
from django.shortcuts import render,HttpResponse
from .models import User1
def text(request):
res=User1.objects.filter(age=18).first()
print(res)
return HttpResponse("OK")
终端返回结果:
1韦广和死佬18
[18/Oct/2025 15:43:48] "GET /app082/text HTTP/1.1" 200 2
查询3:查询有且有一个满足条件,如果多条数据满足,则会报错。
from django.shortcuts import render,HttpResponse
from .models import User1
def text(request):
res=User1.objects.get(age=18)
print(res)
return HttpResponse("OK")
MultipleObjectsReturned at /app082/text